package com.cskaoyan.javase.oop3._2inner._2static._0introduction;

/**
 * 静态内部类的语法就比成员内部类多了一个static
 * 语法:
 * //外围（普通）类
 * [访问权限修饰符] class EnclosedClazz{
 * // 静态内部类访问权限修饰符，有四个，和普通成员一样
 *   [访问权限修饰符] static class NestedClazz{
 *  }
 * }
 *
 * 自身特点
 * 依然主要从以下几个角度分析：
 *      1.访问权限修饰符
 *          四种皆可
 *      2.成员特点
 *          静态内部类和外围类之间没有依赖关系
 *          它们本身就是两个独立的类
 *          静态内部类之所以进入到另一个类的内部,是为了隐藏和保护自己
 *
 *          既然本身就是一个独立的类,那么静态内部类的成员和普通类没有任何区别
 *          静态内部类由于和外围类之间没有强依赖关系
 *          所以它的使用,相比较于成员内部类会更加灵活,也更常见.
 *
 *      3.继承和实现
 *          可以继承,可以实现
 *
 *
 * @since 11:17
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

class EnclosedClazz {

    private static class NestedClazz {
        int a;
        private int b = 10;
        static int c = 20;
        static final int D = 30;

        public void testNested() {
        }

        public static void testStaticNested() {
        }

        public NestedClazz() {
        }

        public NestedClazz(int a, int b) {
            this.a = a;
            this.b = b;
        }

        {
        }

        static {
        }
    }
}